home *** CD-ROM | disk | FTP | other *** search
- global spritetot ,spritestart, hloc, vloc, vspace
- global textmember, textbase, tscrollpos, tscrollmax
- global spriteorder, rate, fsize
-
- on setuptscroll targettext
-
- set spriteorder =[]
- set textbase = ""
- set textmember = the number of member "textmember1"
- set fsize = the fontsize of member textmember
- set rate = 20.0 -- ï Number of steps ï
- set spritetot = 5 -- ï Number of on-screen sprites ï
- set spritestart = 40 -- ï First sprite channel ï
- set hloc = 368 -- ï Horizontal position ï
- set vloc = 303 -- ï Vertical position of first sprite ï
- set vspace = 27 -- ï Vertical spacing between sprites ï
- repeat with j = 1 to spritetot
- puppetsprite (spritestart+(j-1)),1
- setat spriteorder,j,j-1
- end repeat
- set textbase = the text of member targettext
- set tscrollpos = 1
- set tscrollmax = the number of lines in textbase+1-spritetot
- displaytext
- end setuptscroll
-
- on displaytext
- repeat with j = 1 to spritetot
- set the loch of sprite (spritestart+(getat(spriteorder,j))) = hloc
- set the locv of sprite (spritestart+getat(spriteorder,j)) = vloc+((j-1)*vspace)
- set the text of member (textmember+(getat(spriteorder,j))) = line ((j-1)+tscrollpos) of textbase
- end repeat
- updatestage
- end displaytext
-
- on scrollup
- repeat while the stilldown
- if tscrollpos>1 then
- autoup
- set tscrollpos = tscrollpos -1
- shiftorder 1
- end if
- end repeat
- end scrollup
-
- on scrolldown
- repeat while the stilldown
- if tscrollpos+1<=tscrollmax then
- autodown
- set tscrollpos = tscrollpos+1
- shiftorder 0
- end if
- end repeat
- end scrolldown
-
- on shiftorder up
- if up then
- set tmp = getat(spriteorder,spritetot)
- repeat with j = spritetot down to 2
- setat spriteorder,j,getat(spriteorder,j-1)
- end repeat
- setat spriteorder,1,tmp
- else
- set tmp = getat(spriteorder,1)
- repeat with j = 1 to spritetot-1
- setat spriteorder,j,getat(spriteorder,j+1)
- end repeat
- setat spriteorder,spritetot,tmp
- end if
- end shiftorder
-
-
- on autodown
- set vstep = float(vspace/rate)
- set topdist = the locv of sprite (spritestart+getat(spriteorder,1))
- set botdist = 640 - the locv of sprite (spritestart+getat(spriteorder,spritetot))
- set totdist = topdist+botdist--+vspace
- set topstep = float(totdist/rate)
- set posv = []
- repeat with j = 1 to spritetot
- setat posv,j,the locv of sprite (spritestart+getat(spriteorder,j))
- end repeat
- repeat with j = 1 to rate
- set thelocv2 = getat(posv,1)
- if thelocv2-(topstep*j)<=0 then
- setat posv,1,getat(posv,1)+640
- set the text of member (textmember+getat(spriteorder,1)) = line (spritetot+tscrollpos) of textbase
- end if
- set the locv of sprite (spritestart+getat(spriteorder,1)) = thelocv2 - (topstep*j)
- repeat with k = 2 to spritetot
- set thelocv = getat(posv,k)
- set the locv of sprite (spritestart+getat(spriteorder,k)) = thelocv - (vstep*j)
- end repeat
- updatestage
- end repeat
- set the locv of sprite (spritestart+getat(spriteorder,1)) = getat(posv,spritetot)
- updatestage
-
- end autodown
-
- on autoup
- set vstep = float(vspace/rate)
- set topdist = the locv of sprite (spritestart+getat(spriteorder,1))
- set botdist = 640 - the locv of sprite (spritestart+getat(spriteorder,spritetot))
- set totdist = topdist+botdist+vspace
- set topstep = float(totdist/rate)
- set posv = []
- repeat with j = 1 to spritetot
- setat posv,j,the locv of sprite (spritestart+getat(spriteorder,j))
- end repeat
- repeat with j = 1 to rate
- set thelocv2 = getat(posv,spritetot)
- if thelocv2+(topstep*j)>640 then
- setat posv,spritetot,getat(posv,spritetot)-640-topdist+fsize+(vstep*2)
- set the text of member (textmember+getat(spriteorder,spritetot)) = line (tscrollpos-1) of textbase
- end if
- set the locv of sprite (spritestart+getat(spriteorder,spritetot)) = thelocv2 + (topstep*j)
- repeat with k = 1 to spritetot-1
- set thelocv = getat(posv,k)
- set the locv of sprite (spritestart+getat(spriteorder,k)) = thelocv + (vstep*j)
- end repeat
- updatestage
- end repeat
- set the locv of sprite (spritestart+getat(spriteorder,spritetot)) = getat(posv,1)
- updatestage
- end autoup
-
-
-
-
-
-